const winston = require('winston')
const moment = require('moment')
const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(),
  transports: [
    //
    // - Write to all logs with level `info` and below to `combined.log`
    // - Write all logs error (and below) to `error.log`.
    //
    new winston.transports.File({filename: 'logs/error.log', level: 'error'}),
    new winston.transports.File({filename: 'logs/combined.log'})
  ]
});
//
// If we're not in production then log to the `console` with the format:
// `${info.level}: ${info.message} JSON.stringify({ ...rest }) `
//
logger.add(new winston.transports.Console({
  format: winston.format.combine(winston.format.colorize(), winston.format.simple())
}))
logger.newInfo = (msg) => {
  logger.info(msg + moment().format('YYYY-MM-DD HH:mm:ss'))
}
logger.newError = (msg) => {
  logger.error(msg + moment().format('YYYY-MM-DD HH:mm:ss'))
}
logger.newWarn = (msg) => {
  logger.warn(msg + moment().format('YYYY-MM-DD HH:mm:ss'))
}
module.exports = logger
